home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / shells / kiss-0.11 / kiss-0 / kiss / src / redirected.c < prev    next >
C/C++ Source or Header  |  1995-03-23  |  719b  |  42 lines

  1. #include "kiss.h"
  2.  
  3. static void deletelasttwo (Stringstack *cmd)
  4. {
  5.     free (cmd->str [cmd->nstr - 2]);
  6.     free (cmd->str [cmd->nstr - 1]);
  7.     cmd->nstr -= 2;
  8. }
  9.  
  10. Redirect redirected (Stringstack *cmd, char *fname)
  11. {
  12.     register char
  13.     *token,
  14.     *name;
  15.     
  16.     if (cmd->nstr >= 3)
  17.     {
  18.     token = cmd->str [cmd->nstr - 2];
  19.     name  = cmd->str [cmd->nstr - 1];
  20.     
  21.     if (! strcmp (token, ">"))
  22.     {
  23.         strcpy (fname, name);
  24.         deletelasttwo (cmd);
  25.         return (writeto);
  26.     }
  27.     if (! strcmp (token, ">>"))
  28.     {
  29.         strcpy (fname, name);
  30.         deletelasttwo (cmd);
  31.         return (appendto);
  32.     }
  33.     if (! strcmp (token, "<"))
  34.     {
  35.         strcpy (fname, name);
  36.         deletelasttwo (cmd);
  37.         return (readfrom);
  38.     }
  39.     }
  40.     return (none);
  41. }
  42.